02. 命名空间

命名空间

在开始进一步练习 C++向量之前,你需要把 C++ 向变得更易于读写。你可能已经注意到,使用标准库的时候,你必须写大量 “std”。例如,std::cout or std::string or std::vector。

std 被称为 命名空间 。简而言之,命名空间是将代码组织成逻辑组的方式。在本例中,std 是标准库的命名空间。

实际上,你可以在 main.cpp 文件的顶部声明你的名称空间,然后就无需在代码中重复:

std::

上述代码。下面是一个例子:

#include <iostream>
#include <vector>
using namespace std;

int main() {
vector<int> intvectorvariable;
int intvariable = 5;
cout << intvariable << endl;
return 0;

}

请注意,向量声明、cout 和 endl 不再需要 std ::。

声明命名空间的好处是,代码读写更容易。缺点是,变量和函数的命名必须更加小心。之前,你可能会这么写:

std::cout

让你的程序知道,你指的是来自标准库的 cout 函数。这样,C++ 应该就可以让你实际创建一个名为 cout 的变量或函数。这并不是一个好主意,但代码不会报错。一旦你添加了代码 using namespace std; ,再输入 cout 就会引用标准库中的函数 cout。

从现在开始,练习和代码示例将包含 using namespace std; 代码行。

命名空间

选出所有关于名称空间正确的陈述:

SOLUTION:
  • 命名空间可以将相关的代码组合在一起。
  • 命名空间可以避免变量名、函数名和类名之间的冲突。
  • 在程序顶部声明一个命名空间,可以避免在代码中多次写出命名空间的名称。

你现在可以使用命名空间来简化向量句法啦。 让我们对比一下 Python 与 C++ 向量句法,并进行 C++ 向量代码练习。

命名空间练习

使用标准库命名空间,更改代码,让代码不再使用 "std::"。

Start Quiz:

#include <iostream>
#include <string>

// TODO: Use the standard namespace

int main() {
    
    // TODO: change the code so that it no longer uses "std::"    
    
    std::string fruit = "apple";
    std::string vegetable = "broccoli";
    
    std::cout << "My favorite fruit is " << fruit <<
      " and my favorite vegetable is " << vegetable << "\n";
    
    return 0;
}
#include <iostream>
#include <string>

using namespace std;

int main() {
    
    string fruit = "apple";
    string vegetable = "broccoli";
    
    cout << "My favorite fruit is " << fruit <<
      "and my favorite vegetable is " << vegetable << "\n";
    
    return 0;
}